package Day014_Lambda表达式_Stream流.ZuoYe.Test4;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @author zhangyan
 * @date 2020/5/5 19:00
 */
public class Test6 {
    public static void main(String[] args) {
        //创建集合
        ArrayList<String> list1 = new ArrayList<>();
        ArrayList<String> list2 = new ArrayList<>();
        //添加元素
        list1.add("《教父》");
        list1.add("《肖申克的救赎》");
        list1.add("《辛德勒的名单》");
        list1.add("《公民凯恩》");
        list1.add("《卡萨布兰卡》");
        list1.add("《教父续集》");
        list1.add("《七武士》");
        list1.add("《星球大战》");
        list1.add("《美国美人》");
        list1.add("《飞跃疯人院》");

        list2.add("《霸王别姬》");
        list2.add("《大闹天宫》");
        list2.add("《鬼子来了》");
        list2.add("《大话西游》");
        list2.add("《活着》");
        list2.add("《饮食男女》");
        list2.add("《无间道》");
        list2.add("《天书奇谭》");
        list2.add("《哪吒脑海》");
        list2.add("《春光乍泄》");

        //获取Stream流
        Stream<String> stream1 = list1.stream();
        Stream<String> stream2 = list2.stream();

        //1.打印全球影片排行榜中的前三甲影片名
        stream1.limit(3).forEach((e) -> {
            System.out.println(e);
        });

        //2.打印华人影片排行榜中倒数5名的影片名
        stream2.skip(5).forEach((e) -> {
            System.out.println(e);
        });

        //3.将两个排行榜中的前5名挑出来共同存入新的集合

        //合并  Stream流不能重复使用,直接用list.stream()
        Stream<String> concat = Stream.concat(list1.stream().limit(5), list2.stream().limit(5));

        //存入List集合
        List<String> list = concat.collect(Collectors.toList());
        System.out.println(list);

        //4.定义电影Film类，以影片名为name创建Film对象并保存至集合
       List<Film> list3 = new ArrayList<>();
        for (String name : list) {
            list3.add(new Film(name));
        }
        System.out.println(list3);
    }
}

class Film {
    String name;

    public Film(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Film{" +
                "name='" + name + '\'' +
                '}';
    }
}